# 创建驱动对象
import os
import sys
import inspect
import datetime
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager


class Driver:
    driver = ""
    def __init__(self):
        options = webdriver.ChromeOptions()
        options.add_argument("--incognito")
        self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
        # 添加一个隐式等待，预防代码执行速度比页面渲染加载快，报错
        # 隐式等待两秒，隐式等待的生命周期是整个查找过程
        self.driver.implicitly_wait(2)

    # 截图函数
    def GetScreenShot(self):
        # 首先在上一级路径创建一个文件夹，命名为：Images+当天的年月日
        # 创建之前先看一下，文件夹是否存在
        dirname = datetime.datetime.now().strftime('%Y-%m-%d')
        if not os.path.exists("../images/"+dirname):
            # 如果不存在，就创建文件夹
            os.mkdir("../images/" + dirname)

        # 截图的图片名称要加上调用是哪个函数调用这个截图函数的
        # 图片名称：BlogLoginTest-2025-3-23-123409
        current_frame = inspect.currentframe()
        filename = current_frame.f_back.f_code.co_name + "-" + datetime.datetime.now().strftime(
            "%Y-%m-%d-%H%M%S") + ".png"
        # 利用驱动对象调用截图函数
        self.driver.save_screenshot(f'../images/{dirname}/' + filename)

# 使用Driver类创建一个类驱动对象，其他函数想要使用这个驱动就得使用BlogDriver调用里面的驱动成员driver
BlogDriver = Driver()